"""
我看整个python的学习，他们是在学习 turtle的过程中实现的

第一个课，认识一下turtle ，并绘制简单的图形  , speed的默认值应该是3

学习了
print() 但是print的讲解不够详细： 为什么会换行 ，能不能不让他换行
        同时还缺少了注释的概念 讲解一下注释：
forward()
left/rignt()
color/bgcolor()
pensize()
speed()
circle()
dot()

总结： 这里我们编写了一下，自己的第一行代码，需要总结一下这个代码的规律，--- 是按照顺序从上往下执行的。

"""

import turtle as t
import time
import threading


# 绘制一个三角形
def drawSanjiao():
    print(f'speed:{t.speed()}')
    bt = time.time()
    #t.bgcolor('black') 就是画布的颜色
    t.pensize(3)
    t.begin_fill()
    t.color('pink','pink')
    t.forward(100)
    t.right(120)
    t.forward(100)
    t.right(120)
    t.forward(100)
    t.right(120)
    t.end_fill()
    bt = time.time() - bt
    print(f'speed:{t.speed()}')
    print(bt)


def fiveAngle():
    for i in range(5):
        t.forward(200)
        t.right(144)
    t.done()

def drawCircle():
    help(t.circle)
    t.speed(5)
    t.pensize(3)
    # 画圆 第一个参数是半径（如果是整数向右上方画圆，如果是负数向右下方画圆），
    # 第二个参数是绘制的 圆的范围，不给默认绘制360度
    # 第三个参数是圆的内接正多边型
    t.circle(100,180)
    t.done()


# 绘制内切多圆
def drawMultiCircle():
    t.speed(1)
    t.pensize(3)
    colors = ['red','green','blue']
    j = 0
    for i in range(100,200,40):
        t.color(colors[j])
        j+=1
        t.circle(i)
    t.done()

# 绘制点dot
def drawDot():
    # 默认笔是落下的，所以移动的时候就可以绘制图像
    print(t.isdown())
    t.speed(5)
    # 第一个参数是点的大小 第二个参数是点的颜色
    t.dot(3,'red')
    t.penup()
    t.forward(100)
    t.pendown()
    t.dot(5,'blue')
    t.done()

if __name__ == '__main__':
    # tl1 = t.Turtle()
    # tl2 = t.Turtle()
    # t1 = threading.Thread(target=drawSanjiao,args=(tl1,))
    # t2 = threading.Thread(target=fiveAngle,args=(tl2,))
    # t1.start()
    # t1.join()
    # t2.start()
    # t2.join()
    # 上面的方式是在子线程中更新UI了，必然报错

    #drawSanjiao()
    #fiveAngle()
    #drawCircle()
    #drawMultiCircle()
    drawDot()
    pass